#include <vector>
#include<unordered_map>
#include<string>
#include <cstdio>
#include <iostream>
#include <ostream>


/*int main() {
    int N, k;
    scanf("%d %d", &N, &k);  // 读取第一行的N和k
    
    std::vector<int> arr(N);  // 预分配数组空间
    for (int i = 0; i < N; ++i) {
        scanf("%d", &arr[i]);  // 逐个读取第二行的整数
    }


std::unordered_map<int, int> map;
    map.insert({0,-1});
    int ans = 0;
    int sum = 0;
    for (int i = 0; i < N; ++i)
    {
        sum+=arr[i];

        if (map.find(sum-k)!=map.end())
        {
            ans++;
        }
        if (map.find(sum)==map.end())
        {
            map.insert({sum,i});
        }
    }

    std::cout << ans << std::endl;
    // 处理数据...
    return 0;
}*/
